package final_wearebatman_view;

import final_wearebatman_model.Wire;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;

public class WireView implements Ipaintable {

    private Wire wire;
    private CircuitView circuitview;
    private int posX;
    private int posY;
    private int angle;
    private String name;
    private Point startPos;
    private Point endPos;

    public WireView(Wire w, String name, CircuitView cv) {
        this.wire = w;
        this.circuitview = cv;
        this.name = name;
    }

    // Az alkatrész kirajzolásáért felelős metódus
    public void paint(Graphics2D g) {
        // Szipla összekötés
        g.drawLine(startPos.x, startPos.y, endPos.x, endPos.y);
    }

    // Lekéri az alkatrész X pozícióját
    public int getPosX() {
        return this.posX;
    }
    
    // Lekéri az alkatrész Y pozícióját
    public int getPosY() {
        return this.posY;
    }

    // Lekéri az alkatrész szögét, ahogy áll a vásznon
    public int getAngle() {
        return this.angle;
    }

    // Lekéri az adott bemenet pozícióját (ide kell kötni a vezetéket)
    public Point getInputPinPosition(int id) {
        return new Point(posX, posY);
    }

    // Lekéri az adott kimenet pozícióját (ide kell kötni a vezetéket)
    public Point getOutputPinPosition(int id) {
        return new Point((this.startPos.x+this.endPos.x)/2, (this.startPos.y+this.endPos.y)/2);
    }

    // Beállítja a vezeték elejéne pozícióját
    public void setStartPosition(Point p) {
        this.startPos = p;
    }

    // Beállítja a vezeték végének pozícióját
    public void setEndPosition(Point p) {
        this.endPos = p;
    }

    // Lekéri a téglalapot amelyre kattintva lefut az alkatrész eseménye (itt nincs)
    public Rectangle getClickArea() {
        return new Rectangle();
    }

    // Ez az esemény futna le ha rákattintanánk
    public void onClick() {

    }
}
